#include<iostream>
class Faction
{
private:
	int m_zi, m_mu;
	static int m_x;
public:
	Faction(const int& zi = 0, const int& mu = 2);
	Faction(const Faction&);
	~Faction();
	void set(const int&, const int&);
	friend void out(const Faction&);
	Faction& operator = (const Faction&);
	Faction& operator/=(const Faction);
	Faction  operator/(const Faction&);
	bool operator <(const Faction&);
	void reduction();
	const int& _mu() { return m_mu; }
	const int& _zi() { return m_zi;  }

};
Faction ::Faction(const int&zi,const int &mu):m_zi(zi),m_mu(mu){}
Faction::Faction(const Faction& rhs) {
	m_zi = rhs.m_zi;
	m_mu = rhs.m_mu;
}
Faction::~Faction() {
	cout << "constructor destroyed!" << endl;
	m_x++;
}
void Faction::set(const int& i, const int& j) {
	m_zi = i;
	m_mu = j;
}